If a software error corrupts a data object, or if erroneous data updates the data object, a data protection administrator may restore the data object to a previous state that does not include the corrupted or erroneous data. A backup/restore application executes a backup operation either occasionally or continuously to enable this restoration, storing a copy of each desired data object state (such as the values of data and these values' embedding in a database's data structures) within dedicated backup files. When the data protection administrator decides to return the data object to a previous state, the data protection administrator specifies the desired previous state by identifying a desired point in time when the data object was in this state, and instructs the backup/restore application to execute a restore operation to restore a copy of the corresponding backup files for that state to the data object.
Some computer systems, such as Microsoft's SQL Server 2016, include an “Always On” availability group, which can be a high-availability and disaster-recovery solution that provides an enterprise-level alternative to database mirroring. An availability group can maximize the availability of a set of user databases for an enterprise, and support a failover environment for a discrete set of user databases, known as availability databases, that fail over together from one computer in a cluster of computers to another computer in the cluster of computers. Each computer in the cluster may be referred to as a node. A primary database replica in an availability group may be made available for read/write access, while each secondary database replica may be made available for read-only access and/or some backup operations. A secondary database replica becomes the new read/write database replica when the primary database replica is no longer sufficiently accessible. Backup performance can improve if a system administrator specifies availability group properties, such as backup preference of a secondary database replica over a primary database replica for creating backup files, thereby reducing the load on the production server that is using the primary database replica.
Some computer system may provide a virtual machine, which can be a software implementation of a computer that executes programs like a physical device. A system virtual machine provides a complete system platform which supports the execution of a complete operating system, and usually emulates an existing architecture, including disks. Multiple instances of virtual machines lead to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, which is known as hardware virtualization, the key to a cloud computing environment. Such computer systems may provide a virtual server, which can be a software implementation of a host computer that runs computer programs which share their resources or services with client devices.
A multi-node virtual server, which can be referred to as a shared cluster of nodes or a failover cluster instance, can support an availability group by one of the nodes in the multi-node virtual server using a database replica until the node fails, at which time another node in the multi-node virtual server begins using the database replica. In addition to a multi-node virtual server offering internal failover protection for an availability group, a cluster of computers that includes many multi-node virtual servers can offer levels of failover protection for an availability group. For example, a first node in a first multi-node virtual server uses a primary database replica until the first node fails, at which time the second node in the first multi-node virtual server uses the primary database replica until the second node fails, at which time a node in a second multi-node virtual server uses a secondary database replica. Although this example describes a cluster of computers that includes only two multi-node virtual servers, with each multi-node virtual server including at most two nodes, a cluster of computers may include any number of multi-node virtual servers, with each multi-node virtual server including any number of nodes. Similar to other data objects, backup copies may be made of a multi-node virtual server's data objects to enable a restoration of the multi-node virtual server's data objects in the event of corruption or an erroneous update to the multi-node virtual server's data objects.
A data object may be stored on a storage array, which is a disk storage system that includes multiple disk drives. Unlike a disk enclosure, a storage array may have cache memory and advanced functionality, such as virtualization and Redundant Array of Independent Disks (RAID). A data protection administrator may manage a backup/restore application to create backups files of data objects, and store the backup files of data objects on multiple storage arrays.